package ace.cmp.spring.data.jdbc.querydsl.core;

import ace.cmp.spring.data.jdbc.querydsl.core.repository.handler.*;
import ace.cmp.spring.data.jdbc.querydsl.core.util.QuerydslAnnotationUtils;
import lombok.Data;

/**
 * @author caspar
 * @date 2023/4/3 19:40
 */
@Data
public class QuerydslJdbcRepositoryExtendFactoryInjectHelperImpl
    implements QuerydslJdbcRepositoryExtendFactoryInjectHelper {
  private final QuerydslRelationHelper querydslRelationHelper;
  private final QuerydslCreatedDateAnnotationHandler querydslCreatedDateAnnotationHandler;
  private final QuerydslLastModifiedDateAnnotationHandler querydslLastModifiedDateAnnotationHandler;
  private final QuerydslVersionAnnotationHandler querydslVersionAnnotationHandler;
  private final QuerydslNowGenerator querydslNowGenerator;
  private final QuerydslVersionGenerator querydslVersionGenerator;
  private final QuerydslLogicDeleteAnnotationHandler querydslLogicDeleteAnnotationHandler;
  private final QuerydslAnnotationUtils querydslAnnotationUtils;

  public QuerydslJdbcRepositoryExtendFactoryInjectHelperImpl(
      QuerydslRelationHelper querydslRelationHelper,
      QuerydslCreatedDateAnnotationHandler querydslCreatedDateAnnotationHandler,
      QuerydslLastModifiedDateAnnotationHandler querydslLastModifiedDateAnnotationHandler,
      QuerydslVersionAnnotationHandler querydslVersionAnnotationHandler,
      QuerydslNowGenerator querydslNowGenerator,
      QuerydslVersionGenerator querydslVersionGenerator,
      QuerydslLogicDeleteAnnotationHandler querydslLogicDeleteAnnotationHandler,
      QuerydslAnnotationUtils querydslAnnotationUtils) {
    this.querydslRelationHelper = querydslRelationHelper;
    this.querydslCreatedDateAnnotationHandler = querydslCreatedDateAnnotationHandler;
    this.querydslLastModifiedDateAnnotationHandler = querydslLastModifiedDateAnnotationHandler;
    this.querydslVersionAnnotationHandler = querydslVersionAnnotationHandler;
    this.querydslNowGenerator = querydslNowGenerator;
    this.querydslVersionGenerator = querydslVersionGenerator;
    this.querydslLogicDeleteAnnotationHandler = querydslLogicDeleteAnnotationHandler;
    this.querydslAnnotationUtils = querydslAnnotationUtils;
  }
}
